# 作者：一只牛吗
# 2025 年02月 06日 18时 40分 09秒
# 1278599690@qq.com


'''
常用的文件操作模式：
r 读模式，只读模式，文件必须存在，否则报错
w 写模式，只写模式，文件不存在，则创建，存在则覆盖
a 追加模式，在文件末尾追加内容，文件不存在，则创建
r+ 读写模式，可读可写，文件必须存在，否则报错
w+ 读写模式，可读可写，文件不存在，则创建，存在则覆盖
a+ 读写模式，可读可写，在文件末尾追加内容，文件不存在，则创建

编码格式：
utf-8，gbk，gb2312，ascii等

文件操作函数：
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)

    file：文件名或文件描述符
    mode：读写模式，默认是只读模式'r'
    buffering：缓冲区大小，默认-1，表示系统默认缓冲区大小
    encoding：编码格式，默认None，表示系统默认编码格式
    errors：错误处理方式，默认None，表示系统默认错误处理方式
    newline：换行符，默认None，表示系统默认换行符
    closefd：是否关闭文件描述符，默认True，表示关闭文件描述符

read()：读取文件内容，返回字符串
write(string)：写入字符串到文件末尾，返回写入的字符数
close()：关闭文件

'''


def open_file():
    '''
    写模式下是不能进行读操作的，如果文件不存在 ，则创建，存盖
    使用r+模式，打开后在开头内容直接覆盖
    :return:在则覆
    '''
    file = open("file2.txt", mode="w", encoding="utf-8")
    file.write('world\n')
    text = file.read()  # 读出来的都是字符串
    print(text)
    file.write('world\n')
    file.close()


def open_w():
    file = open("file2.txt", mode="w", encoding="utf-8")
    file.write('hello\n')
    file.close()

def open_a():
    '''
    追加模式，在文件末尾追加内容，文件不存在，则创建，在这个模式下文件是不可读的
    :return:
    '''
    file = open("file2.txt", mode="a", encoding="utf-8")
    file.write('world\n')
    file.close()


def open_r_plus():
    file = open("file2.txt", mode="r+", encoding="ascii")
    file.write('hello\n')


def read_file():
    file = open("file2.txt", mode="r", encoding="utf-8")
    while True:
        text = file.readline()
        if not text:
            break
        print(text, end='')
    file.close()





if __name__ == '__main__':
    # open_file()
    # open_w()
    # open_a()
    # open_r_plus()
    read_file()